前置知识–数字电路[计组]

一.晶体三极管与数字电路

物体按导电性可以分为:

  • 绝缘体:不导电 (塑料, 橡胶 , 陶瓷)

  • 导体: 双向导电(金银铜铁等)

  • 半导体:单项导电(硅锗等)

    导电性介于绝缘体和导体之间, 加热单向导电,冷却绝缘

三极管: 集电极,发射极,基极 (相当于一个电子开关)

实现逻辑取反的功能

  • 输入1 => 0
  • 输入0 => 1

如果我们把两个晶体三极管并联在一起:

1.两种基础的门电路:

  • 与非门
  • 或非门

(1)与非门

与非门示意图

输入输出
A B 输出
0 0 1
0 1 1
1 0 1
1 1 0

总结:

  • 两路输入都高, 才为低

两个三极管都导通 , 输出低电平

与非门电路图

(2)或非门

或非门示意图

输入输出
A B 输出
0 0 1
0 1 0
1 0 0
1 1 0

总结:

  • 任何一路输入为高, 输出都为低

两个三极管都导通 , 输出低电平

或非门电路图

在此基础上可以制作 与门, 或门 电路

2.三态门电路

  • 是具有三种逻辑状态的门电路, 是构成计算机总线的理想电路

输出状态取决于输入信号与控制信号

三态

  • 低电平(0)
  • 高电平(1)
  • 高阻态(截止)

输出高阻态:

  • 输入与输出信号直接处于截止状态, 电路与所连接的线路断开
三态门电路图

输入输出

G D 输出: Q
0 0 0
0 1 1
1 任意 高阻
image-20220907163121073

通过三态门我们可以改变信号传输的方向

二.逻辑运算与数字电路

1.电路中的信号

  • 模拟信号 :随着时间连续变化的信号

  • 数字信号: 时间和幅度都是离散的

2.基础逻辑运算⭐

逻辑表达式 运算逻辑符号 逻辑真值表
Y=A+B
与非 在这里插入图片描述
或非
与或非
同或
异或

3.基础门电路⭐

基础门电路

注意电路中的"小圆圈" , 表示的是取非的意思

与非门 或非门

异或: 相异为一 ,相同为零

同或: 相异为零 ,相同为一

4.异或电路的特殊功能举例

(1)控制输入输出信号之间的关系

示意图

记为 F=A^c

  • 设置控制信号C=0
    此时,输出信号等于输入信号F=A
    A=1 F=1A=0 F=0
  • 设置控制信号C=1
    此时,输出信号等于输入信号取反F=A
    A=1 F=0A=0 F=1
输入 输出
0 0 0
0 1 1
1 0 1
1 1 0

借助异或的特性,我们也可以用来实现加法

再次不做赘述

代码如下

1
2
3
4
5
6
7
8
9
10
class Solution {
public int add(int n, int p) {
while(p!=0){
int temp = (n&p)<<1;// 存储上一轮的进位和结果 ,如果还有进位那么就继续执行操作
n=n^p; // 进位和+ 非进位和
p=temp; //如果还有进位那么就继续执行操作
}
return n;
}
}

(2)奇偶校验电路

  • 奇数个1 相异的结果为1 ,偶数个1相异的结果为0

    因为 1 只有^ 1才为0

校验原理

5.复合逻辑功能

所有的逻辑表达式都可以用电路画出来

  • 基础逻辑运算与 基础门电路 一一对应

image-20220907174341798

三.数字电路的设计思想⭐

1.概述

  • 设计思想:给出数字电路输入与输出之间的关系

与软件的设计思想相同

数字电路设计步骤

  • 逻辑功能描述 => 真值表 => 逻辑表达式 => (公式,化简 => 最简单逻辑表达式 =>) 数字电路图

反之, 通过数字电路分析实现其功能的逻辑功能

不看电路图, 用手盖住图, 只看输入输出 , 信号逻辑功能表

2.举例

数字电路要解决的问题一般为逻辑问题 , 每一个输入或输出信号用 1 和 0 分别表示两种不同的状态

例一

举例 image-20220907170503671

化简逻辑运算表达式

image-20220907171025102

例二

image-20220907171106715

四.常见的数字电路

  • 计算机组成原理需要用到的

计算机常用逻辑电路分为两大类

1.组合逻辑电路

没有记忆功能

组合逻辑电路的输出状态只取决于当前输入信号的状态,与过去输入信号的状态无关,即电路没有记忆功能。

  • 例如︰加法器、ALU、编码器、译码器、数据选择器等电路。

2.时序逻辑电路

时序逻辑电路的输出状态不仅和当时输入信号的状态有关,还与过去输入信号的状态有关,即电路具有记忆功能。

  • 例如∶最基本的记忆电路是触发器。
  • 由基本的触发器可以构成寄存器,计数器等电路。

3.组合逻辑电路:加法器

加法器是计算机中最常用、最基本的组合逻辑电路。

功能:主要完成两个数值的补码加法运算。

  • 减法∶计算机中没有专门用于减法的电路,因为补码减法可使用加法器实现。

    • 例如∶A减B等于A加B的补

      加法器实现减法举例

  • 乘除法∶可以利用加法器,通过多次循环迭代完成,或使用专门的乘除法电路实现。

半加器

  • 输入两个二进制数XnYn,相加,输出和Hn,不考虑进位。

一位全加器

  • 三输入, 两输出
image-20220907171736127 image-20220907171805806

n位全加器

n位加法器∶将n个一位全加器相连,完成对多位数的相加运算。

一位加法器之间的进位信号是串行传送的,被称为串行进位。本位全加和F;必须等低位进位C;.1输入后才能输出;
当加法器的位数较多时,会使加法运算的速度大大降低。

超前进位加法器(当前计算机使用的)

  • 并行加法器

从加快进位信号的传送速度考虑,可以实现多位并行进位。采用“超前进位电路”来同时形成各进位,从而实现快速加法。

同时输入X1~X4,Y1~Y4和C0,几乎同时输出C4和F1~F4

4.组合逻辑电路: 算术逻辑单元

算术逻辑单元(简称ALU arithmetic and logic unit )

  1. 同一套电路,既实现算术运算功能又实现逻辑运算功能。对数值数据的算术运算∶加、减、乘、除等对逻辑数据的逻辑运算:与、或、非运算等
  2. 一种功能较强的组合逻辑电路(由与、或、非等门电路组合实现)
  3. 其基本逻辑结构是超前进位加法器。

ALU不仅给出算术运算结果,还给出运算结果的特征标志。

  • 例如︰算术运算是否产生了向更高位的进位,结果是否为零,结果的符号为正还是为负,结果是否溢出等。

逻辑运算通常只检查结果是否为零,不存在进位和溢出等问题。

四位ALU逻辑电路

  • 分析逻辑电路:只看输入输出信号,不看电路图
电路图:
分析:
  • S0~S3

    运算选择控制决定电路执行哪种算术运算或哪种逻辑运算。

  • M: 状态控制

    • 1 执行逻辑运算
    • 0 执行算术运算
  • 两个参加运算的数:

    A3A0,B3~B0

    Cn : ALU最低进位

分析逻辑电路:看输入输出信号的逻辑功能表!

逻辑功能表

菜鸡表示什么都看不懂。。。QwQ

ALU功能框架图

5.组合逻辑电路: 编码器

  • 将特定含义的输入信号(文字/数字/符号)转换成二进制代码。即∶:实现把2n个输入变量,编码成N个输出信号。

主要功能∶处理输入变量之间的优先级关系。

举例

(1)普通编码器

  • 任何时刻只允许一个输入信号

😈回顾数字电路设计步骤

  • 逻辑功能描述 => 真值表 => 逻辑表达式 => (公式,化简 => 最简单逻辑表达式 =>) 数字电路图
举例

6.组合逻辑电路: 译码器

实现对n个输入变量,给出2n个(或少于2n个)输出信号的功能,每个输出信号对应n个输入变量的一个最小项。
是否需要译码,通常可以用一或几个控制信号E加以控制。

主要用途︰区分N个输入变量的组合状态。从多个互斥信号中选择其一。

示意图

image-20220907185001280

显像管亮=1,不亮=0

显示译码器

3-8译码器:3输入8输出

7.组合逻辑电路:数据选择器

数据选择器又称多路开关(多个输入,一个输出)

  • 功能:在选择信号的作用下,从多个输入信号中选择一个输出。
  • 例如:从多个寄存器中取出某一个寄存器的内容送ALU。

分析电路:不看电路图,看输入输出信号的逻辑功能表。

功能表

电路图